package com.primary.utils;

import java.util.Random;

/**
 * @author Shen Jianhui
 * @time 2023/07/28 20:58 Friday
 * @description TODO
 * @return
 */
public class ValidateCodeUtils {
    public static Integer generateValidateCode(int length){
        Integer code =null;
        if(length == 4){
            code = new Random().nextInt(9999);//生成随机数，最大为9999
            if(code < 1000){
                code = code + 1000;//保证随机数为4位数字
            }
        }else if(length == 6){
            code = new Random().nextInt(999999);//生成随机数，最大为999999
            if(code < 100000){
                code = code + 100000;//保证随机数为6位数字
            }
        }else{
            throw new RuntimeException("只能生成4位或6位数字验证码");
        }
        return code;
    }

    /**
     * 随机生成指定长度字符串验证码
     * @param length 长度
     * @return
     */
    public static String generateValidateCode4String(int length){
        Random rdm = new Random();
        String hash1 = Integer.toHexString(rdm.nextInt());
        String capstr = hash1.substring(0, length);
        return capstr;
    }

//    /**
//     * 获取指定长度随机验证码（英文）
//     *      内有纯数字验证码代码片段 自行选择解除注释
//     * @param length 长度
//     * @return
//     */
//    public static String getValidateCode(int length){
//        // 获取指定长度的验证码（带字母）
//        String[] letters = new String[]{
//                "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m",
//                "A", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "A", "S", "D", "F", "G", "H", "J", "K", "L", "Z", "X", "C", "V", "B", "N", "M",
//                "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
//        StringBuilder stringBuilder = new StringBuilder();
//        for (int i = 0; i < length; i++) {
//            /*
//             * floor() 方法可对一个数进行下舍入，返回给定参数最大的整数，该整数小于或等给定的参数。返回 double 类型数据，小于或等于给定的参数。
//             * random() 方法用于返回一个随机数，随机数范围为 0.0 =< Math.random < 1.0。该方法返回 double 值。
//             */
//            stringBuilder.append(letters[(int) Math.floor(Math.random() * letters.length)]);
//        }
//
///*        //  自行选择验证码类型
//        //获取6位随机验证码（纯数字）
//        String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000);
//        //获取4位随机验证码（纯数字）
//        verifyCode = String.valueOf(new Random().nextInt(999) + 1000);
//
//        verifyCode = String.valueOf(stringBuilder);*/
//
////        return verifyCode;
//    }

    public static void main(String[] args) {
        Integer code=generateValidateCode(4);
        System.out.println(code);
    }
}
